perm filename RSXMSG.2[EAL,HE]1 blob sn#675515 filedate 1982-09-27 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00003 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	program rsxmsg
C00004 00003	(* Message-passing routines: sendArm, getArm, startArm *)
C00009 ENDMK
CāŠ—;
program rsxmsg;

{$NOMAIN	Overlaid portion of the RSX message-passing routines}


	(* In RSXRUT *)
procedure sndmsg (var res,err: integer);	external;
procedure rcvmsg (var res,err: integer);	external;
function doRqst: integer;			external;
procedure signalArm;				external;

(* Message-passing routines: sendArm, getArm, startArm *)

function SendArm: boolean; external;
function SendArm;
 var res,err:integer;	
 begin
 sndmsg(res,err);		{ Send data to arm code (in Root portion) }
 if res=0 then
   begin			{ Error during sending message }
   write('Error in sendArm: ');
   if err = 1 then writeln('ARM not installed!')
    else writeln('RSX insuf.dyn.mem!');
   break(output);
   end;
 SendArm := (res<>0);		{ True if nonzero }
 end;

function GetArm: boolean; external;
function GetArm;
 var res,err:integer;
 begin
 rcvmsg(res,err);		{ Go to Root portion to actually do it }
 if err<>0 then
   begin			{ Report the error }
   writeln('Error in getArm; err.flag=',err:2);
   break(output);
   end;
 GetArm := (res<>0);		{ Set TRUE if nonzero }
 end;

function startArm: boolean; external;	{ get ARM task running }
function startArm;
 var err: integer;
 begin
 err := doRqst;			{ Do the request; in main memory portion }
 if err<>0 then
   begin				{ Any error during request? }
   writeln('Error in startArm: err.flag=',err:2);
   break(output);
   end;
 startArm := (err=0);			{ Return true iff no error }
 end;